a1df3c637c14af5572e9e0bed42a4c38e7770239,modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/FieldsParseElement.java,FieldsParseElement,parse,#XContentParser#SearchContext#,34

Before Change


            if (name.contains("_source.") || name.contains("doc[")) {
                // script field to load from source
                SearchScript searchScript = new SearchScript(context.lookup(), null, name, null, context.scriptService());
                context.scriptFields().add(new ScriptFieldsContext.ScriptField(name, searchScript));
            } else {
                FieldMapper fieldMapper = context.mapperService().smartNameFieldMapper(name);
                if (!"*".equals(name) && (fieldMapper == null || !fieldMapper.stored())) {

After Change


                                context.fieldNames().add(name);
                            } else {
                                SearchScript searchScript = new SearchScript(context.lookup(), "mvel", "_source." + fieldMapper.names().fullName(), null, context.scriptService());
                                context.scriptFields().add(new ScriptFieldsContext.ScriptField(name, searchScript, true));
                            }
                        }
                    }
                }
            }
            if (!added) {
                context.emptyFieldNames();
            }
        } else if (token == XContentParser.Token.VALUE_STRING) {
            String name = parser.text();
            if (name.contains("_source.") || name.contains("doc[")) {
                // script field to load from source
                SearchScript searchScript = new SearchScript(context.lookup(), null, name, null, context.scriptService());
                context.scriptFields().add(new ScriptFieldsContext.ScriptField(name, searchScript, true));
            } else {
                if ("*".equals(name)) {
                    context.fieldNames().add("*");